/**
 * 角色详情对话框（可用于添加和修改对话框）
 */
var RolInfoDlg = {
	roleInfoData : {},
	roleZtree : null,
    validateFields: {
        name: {
            validators: {
                notEmpty: {
                    message: '角色名称不能为空'
                }
            }
        },
        code: {
            validators: {
                notEmpty: {
                    message: '角色编码不能为空'
                }
            }
        },
        parentName: {
            validators: {
                notEmpty: {
                    message: '上级名称不能为空'
                }
            }
        }
    }
};

/**
 * 清除数据
 */
RolInfoDlg.clearData = function() {
	this.roleInfoData = {};
}

/**
 * 设置对话框中的数据
 * 
 * @param key 数据的名称
 * @param val 数据的具体值
 */
RolInfoDlg.set = function(key, value) {
	this.roleInfoData[key] = (typeof value == "undefined") ? $("#" + key).val() : value;
	return this;
}

/**
 * 设置对话框中的数据
 * 
 * @param key 数据的名称
 * @param val 数据的具体值
 */
RolInfoDlg.get = function(key) {
	return $("#" + key).val();
}

/**
 * 关闭此对话框
 */
RolInfoDlg.close = function() {
	parent.layer.close(window.parent.Role.layerIndex);
}


/**
 * 点击父级菜单input框时
 * 
 * @param e
 * @param treeId
 * @param treeNode
 * @returns
 */
RolInfoDlg.onClickPName = function(e, treeId, treeNode) {
	if($("#id").val()==treeNode.id&&treeNode.id!=0){
		Sys.error("父节点不要选自己啦！")
		return;
	}
	$("#parentName").attr("value", RolInfoDlg.roleZtree.getSelectedVal());
	$("#parentId").attr("value", treeNode.id);
	RolInfoDlg.validate();
}


/**
 * 显示父级菜单的树
 * 
 * @returns
 */
RolInfoDlg.showRoleSelectTree = function() {
    Sys.showInputTree("parentName", "pTreeDiv", 15, 28);
}

/**
 * 收集数据
 */
RolInfoDlg.collectData = function() {
	this.set('id').set('name').set('code').set('parentId').set('description').set('weight');
}

/**
 * 验证数据是否为空
 */
RolInfoDlg.validate = function () {
    $('#roleInfoForm').data("bootstrapValidator").resetForm();
    $('#roleInfoForm').bootstrapValidator('validate');
    return $("#roleInfoForm").data('bootstrapValidator').isValid();
};

/**
 * 提交添加用户
 */
RolInfoDlg.addSubmit = function() {
	
	this.clearData();
	this.collectData();
    if (!this.validate()) {
        return;
    }
	
	//提交信息
	var ajax = new $ax(Sys.backendPath + "/role/add", function(data){
		Sys.success("添加成功!");
		window.parent.Role.table.refresh();
		RolInfoDlg.close();
	},function(data){
		Sys.error("添加失败!" + data.responseJSON.message + "!");
	});
	ajax.set(this.roleInfoData);
	ajax.start();
}

/**
 * 提交修改
 */
RolInfoDlg.editSubmit = function() {
	
	this.clearData();
	this.collectData();
    if (!this.validate()) {
        return;
    }
	
	//提交信息
	var ajax = new $ax(Sys.backendPath + "/role/edit", function(data){
		Sys.success("修改成功!");
		window.parent.Role.table.refresh();
		RolInfoDlg.close();
	},function(data){
		Sys.error("修改失败!" + data.responseJSON.message + "!");
	});
	ajax.set(this.roleInfoData);
	ajax.start();
}

$(function() {
    Sys.initValidator("roleInfoForm", RolInfoDlg.validateFields);
    
	var _roleZtree = new $ZTree("pTree", Sys.backendPath + "/role/tree");
	_roleZtree.bindOnClick(RolInfoDlg.onClickPName);
	_roleZtree.init();
	RolInfoDlg.roleZtree = _roleZtree;
});
